
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTimer>
#include <QPixmap>
#include <QTimeEdit>
#include <QMap>
#include <QDialog>
#include <QListWidget>
#include <QMediaPlayer>
#include <QMediaPlaylist>

    QT_BEGIN_NAMESPACE
    namespace Ui { class MainWindow; }
QT_END_NAMESPACE


class FlowerSelectionDialog : public QDialog
{
    Q_OBJECT

public:
    explicit FlowerSelectionDialog(QWidget* parent = nullptr);
    QString selectedFlower() const;

private:
    QListWidget* flowerList;
};


class MusicSelectionDialog : public QDialog
{
    Q_OBJECT

public:
    explicit MusicSelectionDialog(QWidget* parent = nullptr);
    QString selectedMusic() const;
private:
    QListWidget* musicList;
};

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget* parent = nullptr);
    ~MainWindow();

private slots:
    void startCountdown();
    void updateCountdown();
    void saveToAlbum(); // 保存图片到相册
    void showAlbum();   // 显示相册
    void chooseFlower(); // 选择花种
    void chooseMusic(); // 选择背景音乐

private:
    Ui::MainWindow* ui;
    QTimer* timer;
    int remainingTime; // 剩余时间（秒）
    int totalTime;     // 总时间（秒）
    QMap<QString, QVector<QPixmap>> flowerStages; // 存储不同花种的生长阶段图片
    QList<QPixmap> album; // 存储相册中的图片
    QString currentFlower; // 当前选择的花种
    QMediaPlayer* mediaPlayer; // 媒体播放器
    QMediaPlaylist* playlist; // 媒体播放列表
    void updateFlowerImage();
    void loadFlowerStages(); // 加载花种的生长阶段图片
};

#endif // MAINWINDOW_H